From: Georges Basile Stavracas Neto Date: Thu, 24 Sep 2020 19:31:00 +0000 (-0300) Subject: appDisplay: Allow passing callback to AppFolderDialog.popdown() X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~655^2^2~4 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=1acbdcc9b3b0;p=gnome-shell.git appDisplay: Allow passing callback to AppFolderDialog.popdown() Next commit will allow removing icons from the folder, and we want to do that effectively after the dialog pops down. Add an optional callback to AppFolderDialog.popdown(). https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1447 --- diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index fa2782d81..43bab2db9 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -2093,6 +2093,8 @@ var AppFolderDialog = GObject.registerClass({ this._sourceMappedId = 0; this._popdownTimeoutId = 0; this._needsZoomAndFade = false; + + this._popdownCallbacks = []; } _addFolderNameEntry() { @@ -2297,6 +2299,9 @@ var AppFolderDialog = GObject.registerClass({ opacity: 255, }); this.hide(); + + this._popdownCallbacks.forEach(func => func()); + this._popdownCallbacks = []; }, }); @@ -2477,7 +2482,16 @@ var AppFolderDialog = GObject.registerClass({ this.emit('open-state-changed', true); } - popdown() { + popdown(callback) { + // Either call the callback right away, or wait for the zoom out + // animation to finish + if (callback) { + if (this.visible) + this._popdownCallbacks.push(callback); + else + callback(); + } + if (!this._isOpen) return;